package com.xigua._数学;


import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @author LiRongHua
 * @Title: ${file_name}
 * @Package ${package_name}
 * @Description: 给定2D空间中四个点的坐标 p1, p2, p3 和 p4，如果这四个点构成一个正方形，则返回 true 。

点的坐标 pi 表示为 [xi, yi] 。输入 不是 按任何顺序给出的。

一个 有效的正方形 有四条等边和四个等角(90度角)。
 * @date 2022/7/2910:22
 */
public class _593_有效的正方形 {

    public static void main(String[] args) {
        validSquare(new int[]{1134,-2539},new int[]{492,-1255},new int[]{-792,-1897}
                ,new int[]{-150,-3181});
    }

    public static boolean validSquare(int[] p1, int[] p2, int[] p3, int[] p4) {
        List<Long> list = new ArrayList<>();
        list.add(getLength(p1, p2));
        list.add(getLength(p1, p3));
        list.add(getLength(p1, p4));
        list.add(getLength(p2, p3));
        list.add(getLength(p2, p4));
        list.add(getLength(p3, p4));
        Collections.sort(list);
        if (list.get(0)-list.get(1)==0 && list.get(1)-list.get(2)==0 && list.get(2)-list.get(3)==0
                && list.get(4)-list.get(5)==0 && list.get(4)-list.get(3) !=0) {
            return true;
        }else {
            return false;
        }
    }

    public static long getLength(int[] p1,int[] p2){
        return (p1[0]-p2[0])*(p1[0]-p2[0])+(p1[1]-p2[1])*(p1[1]-p2[1]);
    }

}
